//
//  FriendTableViewController.m
//  IMChat
//
//  Created by Admin on 2021/6/27.
//  Copyright © 2021年 TeamOne. All rights reserved.
//

#import "FriendTableViewController.h"
#import "GroupChatViewController.h"
#import "WWXCardViewController.h"
#import "WWXUser.h"

@interface FriendTableViewController ()<UITableViewDataSource,UITableViewDelegate>

//头部section显示内容数组
@property (nonatomic, strong) NSArray *FirstList;
//分区数据数组
@property (nonatomic, strong) NSArray *LetterList;

//好友信息对象数组
@property (strong, nonatomic) NSMutableArray<FriendInfoModel *> *friendModelList;

@end

@implementation FriendTableViewController

//将要布局子视图
-(void)viewWillLayoutSubviews{
    // 显示底部tarbar
    //self.tabBarController.tabBar.hidden = NO;
    //[self setBadgeValue];
}

//已经布局子视图
-(void)viewWillAppear:(BOOL)animated{
    //刷新cell
    [self initData];
    [self.tableView reloadData];
    // 显示底部tabBar
    self.tabBarController.tabBar.hidden = NO;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //导航栏右侧加号按钮
    UIBarButtonItem *addBtn = [[UIBarButtonItem alloc]
                    initWithImage:[UIImage imageNamed:@"tianjiahaoyou"]
                    style:UIBarButtonItemStylePlain
                    target:self
                    action:@selector(addFriend:)];
    //更改颜色
    addBtn.tintColor = [UIColor colorWithRed:0.502 green:0.502 blue:1 alpha:1.00];
    addBtn.tintColor = [UIColor colorWithRed:0.502 green:0.502 blue:1 alpha:1.00];

    self.navigationItem.rightBarButtonItem = addBtn;
    
    //添加搜索栏
    UISearchBar *search = [[UISearchBar alloc]
                initWithFrame:CGRectMake(0, 0, self.view.intrinsicContentSize.width, 44)];
    search.autocapitalizationType = UITextAutocapitalizationTypeNone;
    self.tableView.tableHeaderView = search;
    
    _FirstList = @[@"新的朋友",@"群聊",@"标签"];
    // 分区数据
    _LetterList = @[@"",@"联系人"];
    
    [self initData];
    
    self.tableView.dataSource = self;
    self.tableView.delegate = self;
    
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    
}

#pragma mark 加载数据
-(void)initData{
    /** 获得全局变量. */
    AppDelegate *myDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    _friendModelList = myDelegate.friendModelList;
}

//点击添加好友按钮事件
-(void)addFriend:(id)sender
{
    NSLog(@"你点击了添加好友按钮！！");
    NewFriendTableViewController *newFriendVC = [[NewFriendTableViewController alloc]init];
    newFriendVC.title = @"新的朋友";
    //移除通讯录提示小红点，ItemIndex:1 就是第二个tabBar
    [self.tabBarController.tabBar hideBadgeOnItemIndex:1];
    // 隐藏底部tabBar
    self.tabBarController.tabBar.hidden = YES;
    
    [self.navigationController pushViewController:newFriendVC animated:YES];
}

//搜索栏输入东西后，点键盘上的搜索按钮时
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    //将搜索栏中的内容存入syr
    NSString *str = searchBar.text;
    str = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    
    //如果未输入或者输入的是空格弹出警示
    if ([str isEqualToString:@""])
    {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"不能为空！"                 message:nil preferredStyle:UIAlertControllerStyleAlert];//先创建一个弹窗控制器 然后里面有title和message来提示需要的东西
        UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel
            handler:nil];//添加一个弹窗的action 活动可以是取消 可以是确认
        [alert addAction:sureAction];
        [self presentViewController:alert animated:NO completion:nil];
        searchBar.text = @"";
        return;
    }
    
}


#pragma mark - Table view data source
//返回有多少个section，这里可以是数组，也可以是数据源的多少，例如NSArray中数据的个数。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [_LetterList count];
}

// 返回分区的title（分区是从 0 开始的）
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    // 根据分区的获取对应的名称
    return _LetterList[section];//返回分区中的内容
}

//返回对应section(indexPath)有多少元素(行数)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    // 根据分区，获取分区中对应要显示的数据长度
    if(section == 0){
        return [_FirstList count];//返回数组对象中的数量
    }else if(section == 1){
        return [_friendModelList count];
    }else{
        return 0;
    }
}

//设置并返回每一个cell，可以在这里对cell进行个性化的设置
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    if(!cell){
        //创建一个UITableViewCell对象，并绑定到cell
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
    }
    
    // 根据分区设置UITableViewCell显示的数据
    if(indexPath.section == 0){
        cell.textLabel.text = _FirstList[indexPath.row];

    }else if(indexPath.section == 1){
        FriendInfoModel *friendModel = [[FriendInfoModel alloc]init];
        friendModel = _friendModelList[indexPath.row];
        
        cell.textLabel.text = friendModel.friendName;
        cell.imageView.image = [UIImage imageNamed:@"touxiang3"];
        
        //调整图片大小
        CGSize itemSize = CGSizeMake(30, 30);
        UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
        CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
        [cell.imageView.image drawInRect:imageRect];
        cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
    }else{
        
    }
    // 设置列的按钮类型
    cell.accessoryType = UITableViewCellAccessoryNone;
    
    // 返回设置好数据的cell给UITableView对象
    return cell;
}

// 选中了cell时触发
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    if(indexPath.section == 0){
        if(indexPath.row == 0){
            NewFriendTableViewController *newFriendVC = [[NewFriendTableViewController alloc]init];
            newFriendVC.title = @"新的朋友";
            // 隐藏底部tabBar
            self.tabBarController.tabBar.hidden = YES;
            //移除通讯录提示小红点，ItemIndex:1 就是第二个tabBar
            [self.tabBarController.tabBar hideBadgeOnItemIndex:1];
            
            [self.navigationController pushViewController:newFriendVC animated:YES];
        }
        if(indexPath.row == 1){
            GroupChatViewController *gcvc = [[GroupChatViewController alloc]init];
            gcvc.title = @"选择联系人";
            // 隐藏底部tabBar
            self.tabBarController.tabBar.hidden = YES;
            
            [self.navigationController pushViewController:gcvc animated:YES];
        }
    }
    
    if(indexPath.section == 1){
        
        FriendInfoModel *friendModel = [[FriendInfoModel alloc]init];
        friendModel = _friendModelList[indexPath.row];
        
        NSLog(@"选中了 %@ 小朋友", friendModel.friendId);
        WWXUser *user = [WWXUser userWithName:friendModel.friendName icon:@"touxiang1" userId:friendModel.friendId];
        WWXCardViewController *card = [WWXCardViewController initWithUser:user];
        // 隐藏底部tabBar
        self.tabBarController.tabBar.hidden = YES;
        
        [self.navigationController pushViewController:card animated:YES];
    }
}

//设置每个cell的高度（通用的方法）
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:
(NSIndexPath *)indexPath{

    return 50.0f;
}

//设置header seaction的高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

    return 40.0f;
}

//设置footer seaction的高度
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{

    return 20.0f;
}

@end
